package com.general.framework.core.enums;

/**
 * @author leejean
 * @ClassName: ICacheEnum
 * @Description: 缓存枚举
 * @date 2020年05月20 10:20:47
 */
public interface ICacheEnum extends IEnum<String> {

    /**
     * 获取值
     *
     * @param param
     * @return
     */
    default String value(String... param) {
        return String.format(moduleValue(), param);
    }

    /**
     * 模块值
     *
     * @return
     */
    default String moduleValue() {
        return getModule() + ":" + this.value();
    }

    /**
     * 获取过期时间，默认10分钟
     *
     * @return
     */
    default Long expire() {
        return 10 * 60L;
    }

    /**
     * 获取模块
     *
     * @return
     */
    String getModule();
}
